package driver

import (
	"context"
)

type ICommonSms interface {
	// SendTemplateSms 发送模板短信
	SendTemplateSms(args *SendSmsArgs) error
	// SendVerifyCode 发送验证码短信
	SendVerifyCode(args *SendSmsArgs) error
	// CheckVerifyCode 检查短信验证码是否有效
	CheckVerifyCode(ctx context.Context, mobile string, code string) error
}

// CommonSms 短信
var CommonSms ICommonSms

type SendSmsArgs struct {
	Mobiles    []string `v:"required#手机号码不能为空" p:"mobiles"`
	Content    string   `p:"content"`    // 发送内容
	TemplateId string   `p:"templateId"` // 指定模板ID
	Params     []string `p:"params"`     // 用于替换内容或模板里的参数
	Ctx        context.Context
}
